import java.util.*;

public class test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        for (int i = 0; i < list.size(); i++) {
            String t = list.get(i);
            System.out.println(t);
        }
        for (String t : list)
            System.out.println(t);
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        // 使用普通for循环遍历并修改元素
        for (int i = 0; i < list.size(); i++) {
            list1.set(i, list1.get(i) * 2);
        }

        System.out.println(list);
        Map<String, Integer> map = new HashMap<>();
        map.put("key1", 1);
        map.put("key2", 2);
        map.put("key3", 3);

        // 使用for-each循环和entrySet()遍历Map
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
    }
    }//    public boolean add(E e) {
//        //获取锁
//        final ReentrantLock lock = this.lock;
//        //加锁
//        lock.lock();
//        try {
//            //获取到当前List集合保存数据的数组
//            Object[] elements = getArray();
//            //获取该数组的长度
//            int len = elements.length;
//            //将当前数组拷贝一份的同时，让其长度加1
//            Object[] newElements = Arrays.copyOf(elements, len + 1);
//            //将加入的元素放在新数组最后一位
//            newElements[len] = e;
//            //替换引用，将数组的引用指向给新数组的地址
//            setArray(newElements);
//            return true;
//        } finally {
//            //释放锁
//            lock.unlock();
//        }
//    }
}
